using System;
using System.Collections.Generic;
using System.Text;
using Demo.Mmose.Core.Common;

namespace Demo.Wow.WorldServer.DBC
{
    public class MapEntry : ILoad<MapEntry>
    {
        public uint m_MapID;                    // 0
        public uint ID
        {
            get { return m_MapID; }
        }

        public string m_InternalName;                         // 1
        public uint m_MapType;                             // 2
        public uint m_Unknown3;                             // 3
        public uint m_Unknown4;                             // 4
        public uint m_Unknown5;                             // 5
        public uint m_Unknown6;                             // 6
        public uint m_Unknown7;                             // 7
        public string m_RealName;                             // 8
        public uint m_Unknown9;                             // 9
        public uint m_Unknown10;                            // 10
        public uint m_Unknown11;                            // 11
        public uint m_Unknown12;                            // 12
        public uint m_Unknown13;                            // 13
        public uint m_Unknown14;                            // 14
        public uint m_Unknown15;                            // 15
        public uint m_Unknown16;                            // 16
        public uint m_Unknown17;                            // 17
        public uint m_Unknown18;                            // 18
        public uint m_Unknown19;                            // 19
        public uint m_Unknown20;                            // 20
        public uint m_Unknown21;                            // 21
        public uint m_Unknown22;                            // 22
        public string m_Unknown23;                          // 23
        public uint m_Unknown24;                            // 24
        public uint m_Unknown25;                            // 25
        public uint m_Unknown26;                            // 26
        public uint m_Unknown27;                            // 27
        public uint m_Unknown28;                            // 28
        public uint m_Unknown29;                            // 29
        public uint m_Unknown30;                            // 30
        public uint m_Unknown31;                            // 31
        public uint m_Unknown32;                            // 32
        public uint m_Unknown33;                            // 33
        public uint m_Unknown34;                            // 34
        public uint m_Unknown35;                            // 35
        public uint m_Unknown36;                            // 36
        public uint m_Unknown37;                            // 37
        public uint m_Unknown38;                            // 38
        public uint m_Unknown39;                            // 39
        public uint m_Unknown40;                            // 40
        public uint m_Unknown41;                            // 41
        public uint m_Unknown42;                            // 42
        public uint m_Unknown43;                            // 43
        public uint m_Unknown44;                            // 44
        public uint m_Unknown45;                            // 45
        public uint m_Unknown46;                            // 46
        public uint m_Unknown47;                            // 47
        public uint m_Unknown48;                            // 48
        public uint m_Unknown49;                            // 49
        public uint m_Unknown50;                            // 50
        public uint m_Unknown51;                            // 51
        public uint m_Unknown52;                            // 52
        public uint m_Unknown53;                            // 53
        public uint m_Unknown54;                            // 54
        public uint m_Unknown55;                            // 55
        public uint m_Unknown56;                            // 56
        public uint m_Unknown57;                            // 57
        public uint m_Unknown58;                            // 58
        public uint m_Unknown59;                            // 59
        public uint m_Unknown60;                            // 60
        public uint m_Unknown61;                            // 61
        public uint m_Unknown62;                            // 62
        public uint m_Unknown63;                            // 63
        public uint m_Unknown64;                            // 64
        public uint m_Unknown65;                            // 65
        public uint m_Unknown66;                            // 66
        public uint m_Unknown67;                            // 67
        public uint m_Unknown68;                            // 68
        public uint m_Unknown69;                            // 69
        public uint m_Unknown70;                            // 70
        public uint m_Unknown71;                            // 71
        public uint m_Unknown72;                            // 72
        public uint m_Unknown73;                            // 73
        public uint m_Unknown74;                            // 74
        public uint m_Unknown75;                            // 75
        public uint m_Unknown76;                            // 76
        public uint m_Unknown77;                            // 77
        public uint m_Unknown78;                            // 78
        public uint m_Unknown79;                            // 79
        public uint m_Unknown80;                            // 80
        public uint m_Unknown81;                            // 81
        public uint m_Unknown82;                            // 82
        public uint m_Unknown83;                            // 83
        public uint m_Unknown84;                            // 84
        public uint m_Unknown85;                            // 85
        public uint m_Unknown86;                            // 86
        public uint m_Unknown87;                            // 87
        public uint m_Unknown88;                            // 88
        public uint m_Unknown89;                            // 89
        public uint m_Unknown90;                            // 90
        public uint m_Unknown91;                            // 91
        public uint m_Unknown92;                            // 92
        public uint m_Unknown93;                            // 93
        public uint m_Unknown94;                            // 94
        public uint m_Unknown95;                            // 95
        public uint m_Unknown96;                            // 96
        public uint m_Unknown97;                            // 97
        public uint m_Unknown98;                            // 98
        public uint m_Unknown99;                            // 99
        public uint m_Unknown100;                           // 100
        public uint m_Unknown101;                           // 101
        public uint m_Unknown102;                           // 102
        public uint m_Unknown103;                           // 103
        public uint m_Unknown104;                           // 104
        public uint m_Unknown105;                           // 105
        public uint m_Unknown106;                           // 106
        public uint m_Unknown107;                           // 107
        public uint m_Unknown108;                           // 108
        public uint m_Unknown109;                           // 109
        public uint m_Unknown110;                           // 110
        public uint m_Unknown111;                           // 111
        public uint m_Unknown112;                           // 112
        public uint m_Unknown113;                           // 113
        public uint m_Unknown114;                           // 114
        public uint m_Unknown115;                           // 115
        public uint m_Unknown116;                           // 116
        public uint m_Unknown117;                           // 117
        public uint m_Unknown118;                           // 118
        public uint m_Unknown119;                           // 119
        public uint m_Unknown120;                           // 120
        public uint m_Unknown121;                           // 121
        public uint m_Unknown122;                           // 122


        public bool Load( DBCRecord dbcRecord )
        {
            this.m_MapID = dbcRecord.GetUInt( 0 );
            this.m_InternalName = dbcRecord.GetString( 1 );
            this.m_MapType = dbcRecord.GetUInt( 2 );
            this.m_Unknown3 = dbcRecord.GetUInt( 3 );
            this.m_Unknown4 = dbcRecord.GetUInt( 4 );
            this.m_Unknown5 = dbcRecord.GetUInt( 5 );
            this.m_Unknown6 = dbcRecord.GetUInt( 6 );
            this.m_Unknown7 = dbcRecord.GetUInt( 7 );
            this.m_RealName = dbcRecord.GetString( 8 );
            this.m_Unknown9 = dbcRecord.GetUInt( 9 );
            this.m_Unknown10 = dbcRecord.GetUInt( 10 );
            this.m_Unknown11 = dbcRecord.GetUInt( 11 );
            this.m_Unknown12 = dbcRecord.GetUInt( 12 );
            this.m_Unknown13 = dbcRecord.GetUInt( 13 );
            this.m_Unknown14 = dbcRecord.GetUInt( 14 );
            this.m_Unknown15 = dbcRecord.GetUInt( 15 );
            this.m_Unknown16 = dbcRecord.GetUInt( 16 );
            this.m_Unknown17 = dbcRecord.GetUInt( 17 );
            this.m_Unknown18 = dbcRecord.GetUInt( 18 );
            this.m_Unknown19 = dbcRecord.GetUInt( 19 );
            this.m_Unknown20 = dbcRecord.GetUInt( 20 );
            this.m_Unknown21 = dbcRecord.GetUInt( 21 );
            this.m_Unknown22 = dbcRecord.GetUInt( 22 );
            this.m_Unknown23 = dbcRecord.GetString( 23 );
            this.m_Unknown24 = dbcRecord.GetUInt( 24 );
            this.m_Unknown25 = dbcRecord.GetUInt( 25 );
            this.m_Unknown26 = dbcRecord.GetUInt( 26 );
            this.m_Unknown27 = dbcRecord.GetUInt( 27 );
            this.m_Unknown28 = dbcRecord.GetUInt( 28 );
            this.m_Unknown29 = dbcRecord.GetUInt( 29 );
            this.m_Unknown30 = dbcRecord.GetUInt( 30 );
            this.m_Unknown31 = dbcRecord.GetUInt( 31 );
            this.m_Unknown32 = dbcRecord.GetUInt( 32 );
            this.m_Unknown33 = dbcRecord.GetUInt( 33 );
            this.m_Unknown34 = dbcRecord.GetUInt( 34 );
            this.m_Unknown35 = dbcRecord.GetUInt( 35 );
            this.m_Unknown36 = dbcRecord.GetUInt( 36 );
            this.m_Unknown37 = dbcRecord.GetUInt( 37 );
            this.m_Unknown38 = dbcRecord.GetUInt( 38 );
            this.m_Unknown39 = dbcRecord.GetUInt( 39 );
            this.m_Unknown40 = dbcRecord.GetUInt( 40 );
            this.m_Unknown41 = dbcRecord.GetUInt( 41 );
            this.m_Unknown42 = dbcRecord.GetUInt( 42 );
            this.m_Unknown43 = dbcRecord.GetUInt( 43 );
            this.m_Unknown44 = dbcRecord.GetUInt( 44 );
            this.m_Unknown45 = dbcRecord.GetUInt( 45 );
            this.m_Unknown46 = dbcRecord.GetUInt( 46 );
            this.m_Unknown47 = dbcRecord.GetUInt( 47 );
            this.m_Unknown48 = dbcRecord.GetUInt( 48 );
            this.m_Unknown49 = dbcRecord.GetUInt( 49 );
            this.m_Unknown50 = dbcRecord.GetUInt( 50 );
            this.m_Unknown51 = dbcRecord.GetUInt( 51 );
            this.m_Unknown52 = dbcRecord.GetUInt( 52 );
            this.m_Unknown53 = dbcRecord.GetUInt( 53 );
            this.m_Unknown54 = dbcRecord.GetUInt( 54 );
            this.m_Unknown55 = dbcRecord.GetUInt( 55 );
            this.m_Unknown56 = dbcRecord.GetUInt( 56 );
            this.m_Unknown57 = dbcRecord.GetUInt( 57 );
            this.m_Unknown58 = dbcRecord.GetUInt( 58 );
            this.m_Unknown59 = dbcRecord.GetUInt( 59 );
            this.m_Unknown60 = dbcRecord.GetUInt( 60 );
            this.m_Unknown61 = dbcRecord.GetUInt( 61 );
            this.m_Unknown62 = dbcRecord.GetUInt( 62 );
            this.m_Unknown63 = dbcRecord.GetUInt( 63 );
            this.m_Unknown64 = dbcRecord.GetUInt( 64 );
            this.m_Unknown65 = dbcRecord.GetUInt( 65 );
            this.m_Unknown66 = dbcRecord.GetUInt( 66 );
            this.m_Unknown67 = dbcRecord.GetUInt( 67 );
            this.m_Unknown68 = dbcRecord.GetUInt( 68 );
            this.m_Unknown69 = dbcRecord.GetUInt( 69 );
            this.m_Unknown70 = dbcRecord.GetUInt( 70 );
            this.m_Unknown71 = dbcRecord.GetUInt( 71 );
            this.m_Unknown72 = dbcRecord.GetUInt( 72 );
            this.m_Unknown73 = dbcRecord.GetUInt( 73 );
            this.m_Unknown74 = dbcRecord.GetUInt( 74 );
            this.m_Unknown75 = dbcRecord.GetUInt( 75 );
            this.m_Unknown76 = dbcRecord.GetUInt( 76 );
            this.m_Unknown77 = dbcRecord.GetUInt( 77 );
            this.m_Unknown78 = dbcRecord.GetUInt( 78 );
            this.m_Unknown79 = dbcRecord.GetUInt( 79 );
            this.m_Unknown80 = dbcRecord.GetUInt( 80 );
            this.m_Unknown81 = dbcRecord.GetUInt( 81 );
            this.m_Unknown82 = dbcRecord.GetUInt( 82 );
            this.m_Unknown83 = dbcRecord.GetUInt( 83 );
            this.m_Unknown84 = dbcRecord.GetUInt( 84 );
            this.m_Unknown85 = dbcRecord.GetUInt( 85 );
            this.m_Unknown86 = dbcRecord.GetUInt( 86 );
            this.m_Unknown87 = dbcRecord.GetUInt( 87 );
            this.m_Unknown88 = dbcRecord.GetUInt( 88 );
            this.m_Unknown89 = dbcRecord.GetUInt( 89 );
            this.m_Unknown90 = dbcRecord.GetUInt( 90 );
            this.m_Unknown91 = dbcRecord.GetUInt( 91 );
            this.m_Unknown92 = dbcRecord.GetUInt( 92 );
            this.m_Unknown93 = dbcRecord.GetUInt( 93 );
            this.m_Unknown94 = dbcRecord.GetUInt( 94 );
            this.m_Unknown95 = dbcRecord.GetUInt( 95 );
            this.m_Unknown96 = dbcRecord.GetUInt( 96 );
            this.m_Unknown97 = dbcRecord.GetUInt( 97 );
            this.m_Unknown98 = dbcRecord.GetUInt( 98 );
            this.m_Unknown99 = dbcRecord.GetUInt( 99 );
            this.m_Unknown100 = dbcRecord.GetUInt( 100 );
            this.m_Unknown101 = dbcRecord.GetUInt( 101 );
            this.m_Unknown102 = dbcRecord.GetUInt( 102 );
            this.m_Unknown103 = dbcRecord.GetUInt( 103 );
            this.m_Unknown104 = dbcRecord.GetUInt( 104 );
            this.m_Unknown105 = dbcRecord.GetUInt( 105 );
            this.m_Unknown106 = dbcRecord.GetUInt( 106 );
            this.m_Unknown107 = dbcRecord.GetUInt( 107 );
            this.m_Unknown108 = dbcRecord.GetUInt( 108 );
            this.m_Unknown109 = dbcRecord.GetUInt( 109 );
            this.m_Unknown110 = dbcRecord.GetUInt( 110 );
            this.m_Unknown111 = dbcRecord.GetUInt( 111 );
            this.m_Unknown112 = dbcRecord.GetUInt( 112 );
            this.m_Unknown113 = dbcRecord.GetUInt( 113 );
            this.m_Unknown114 = dbcRecord.GetUInt( 114 );
            this.m_Unknown115 = dbcRecord.GetUInt( 115 );
            this.m_Unknown116 = dbcRecord.GetUInt( 116 );
            this.m_Unknown117 = dbcRecord.GetUInt( 117 );
            this.m_Unknown118 = dbcRecord.GetUInt( 118 );
            this.m_Unknown119 = dbcRecord.GetUInt( 119 );
            this.m_Unknown120 = dbcRecord.GetUInt( 120 );
            this.m_Unknown121 = dbcRecord.GetUInt( 121 );
            this.m_Unknown122 = dbcRecord.GetUInt( 122 );

            //LOGs.WriteLine( LogMessageType.MSG_INFO, "{0} {1} {2} {3}", m_MapID, m_InternalName, m_MapType, m_RealName );

            return true;
        }
    }
}
